칵테일 셰이커 정렬(Cocktail Shaker Sort)

버블 정렬(Bubble Sort)을 개선한 양방향 버블 정렬

홀수 번째 턴에는 가장 작은 요소를 맨 앞으로,
짝수 번째 턴에는 가장 큰 요소를 맨 뒤로 정렬하는 방식이다

시간복잡도

평균, 최악의 경우는 O(n^2)로 버블 정렬과 동일하지만
최선의 경우 O(n)을 만족한다는 장점이 있다